import 'package:get/get.dart';

class ListenDemoController extends GetxController {
  var count = 0.obs;
  var name = ''.obs;
  var log = ''.obs;

  @override
  void onInit() {
    super.onInit();

    // 监听器
    ever(count, (_) {
      log.value = 'ever: count数据改变${count.value}';
      print('ever: count数据改变${count.value}');
    });

    // 监听器多个数据
    everAll([count, name], (_) {
      log.value = 'everAll: 监听多个,一个触发就变化=${count.value}, name=${name.value}';
      print('everAll: 监听多个,一个触发就变化=${count.value}, name=${name.value}');
    });

    // 监听器只执行一次
    once(count, (_) {
      log.value = 'once: count 第一次被改变时候 ${count.value}';
      print('once: count 第一次被改变时候 ${count.value}');
    });

    // 防抖
    debounce(count, (_) {
      log.value = 'debounce: count(防抖) ${count.value}';
      print('debounce: count(防抖) ${count.value}');
    }, time: const Duration(seconds: 1));

    // 节流
    interval(count, (_) {
      log.value = 'interval: count(节流) ${count.value}';
      print('interval: count(节流) ${count.value}');
    }, time: const Duration(seconds: 1));
  }

  void increment() => count.value++;
}
